package com.synergy.stockflow.utils;

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/**
 * 时间处理工具类
 */
public class DateUtils {

    /** 默认日期时间格式 yyyy-MM-dd HH:mm:ss */
    public static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";

    /**
     * 获取当前时间字符串（默认格式）
     */
    public static String now() {
        return format(LocalDateTime.now());
    }

    /**
     * 格式化 LocalDateTime
     */
    public static String format(LocalDateTime time) {
        return time != null ? DateTimeFormatter.ofPattern(DEFAULT_PATTERN).format(time) : null;
    }

    /**
     * 格式化 Date
     */
    public static String format(Date date) {
        return date != null ? format(date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()) : null;
    }

    /**
     * 将字符串解析为 LocalDateTime
     */
    public static LocalDateTime parse(String timeStr) {
        return LocalDateTime.parse(timeStr, DateTimeFormatter.ofPattern(DEFAULT_PATTERN));
    }

    /**
     * 获取当天的开始时间（00:00:00）
     */
    public static LocalDateTime getTodayStart() {
        return LocalDateTime.now().with(LocalTime.MIN);
    }

    /**
     * 获取当天的结束时间（23:59:59）
     */
    public static LocalDateTime getTodayEnd() {
        return LocalDateTime.now().with(LocalTime.MAX);
    }
}